<head><meta charset='UTF-8'></head><h2>类型转换</h2>


#==== 类型转换 ====#
 
python的几种最基本的数据类型，我们已经见过：

字符串
整数
小数 （浮点数）
bool类型

 
python在定义一个变量时不需要给它限定类型。变量会根据赋给它的值，自动决定它的类型。你也可以在程序中，改变它的值，于是也就改变了它的类型。例如：
a = 1
print(a, type(a))
a = 'hello'
print(a, type(a))
a = True
print(a, type(a))
输出：
1 <class 'int'>
hello <class 'str'>
True <class 'bool'>
变量 a 先后成为了整数int、字符串str、bool类型。
 
虽然类型可以随意改变，但当你对一个特定类型的变量进行操作时，如果这个操作与它的数据类型不匹配，就会产生错误。比如以下几行代码
print('Hello'+1)
print('hello%d' % '123')
 
程序运行时会报错。因为第一句里，字符串和整数不能相加；第二句里，%d 需要的是一个整数，而 '123' 是字符串。
 
这种情况下，python提供了一些方法对数值进行类型转换：

int(x)     #把x转换成整数
float(x)  #把x转换成浮点数
str(x)     #把x转换成字符串
bool(x)   #把x转换成bool值

 
上述两个例子就可以写成：
print ('Hello'+str(1))
print ('hello%d' % int('123'))
 
以下等式的结果均为真：
int('123') == 123
float('3.3') == 3.3
str(111) == '111'
bool(0) == False
 
并不是所有的值都能做类型转换，比如 int('abc') 同样会报错，因为 python 没办法把它转成一个整数。
 
另外关于bool类型的转换，我们会专门再详细说明。大家可以先试试以下结果的值，自己摸索一下转换成bool类型的规律：
bool(-123)
bool(0)
bool('abc')
bool('False')
bool('')
 

